/**
 * 1、在node中，每一个js文件都是一个模块，证明（console.log(arguments.callee + "");）
 * 2、在node中，每一个js文件的js代码都是运行在一个函数中，而不是在全局作用域；
 * 3、在node中，模块分为两类 ，核心模块和文件模块；
 *      核心模块是node提供，    注意加载方式  require("核心模块名")
 *      文件模块是我们自己写的               require("模块加载的路径")
 * 
 * 
 *      const data = require("模块加载的路径");
 *          该模块的返回值就是加载的模块中module.exports 或者 exports 的;
 *          module.exports  == exports 是等价的
 * 
 * 4、在node加载的时候，它首先会在代码的最顶端添加
 *      function (exports, require, module, __filename, __dirname) { 
 *     
 *    在最底下添加
 *     }     
 *    让node的每个文件的代码都包含在这个函数体内部，同时给该函数传递5个参数分别是：
 *          exports(类型object):  该对象用来将变量或者函数暴露到外部进行使用
 *          require(类型function)： 这个函数是用来引入外部的模块
 *          module(类型object)：表示当前模块的本身 module.exports == erports
 *          __filename： 当前模块的完整路径
 *          __dirname：  当前模块所在文件夹的路径
 *     注意：module.exports 与 exports的区别 :
 *          exports只能通过exports.xxx = xxx; exports只能对该对象的属性操作
 *          module.exports 可以通过 module.exports.xxx = xxx;  可以操作属性，
 *                         也可以module.exports = {};          也可以从新赋值
 * 5、在node中，有很多的包，管理这些包是通过 npm 来管理的；
 *          package.json:这个文件相当于项目的描述文件，简单来说就是这个项目的简历
 *          npm 常用命令：
 *              npm varsion 查看所有模块的版本   
 *              npm search 包名   //这个是用来搜索包
 *              npm install / i 包名   //安装包
 *              npm remove / r 包名    //删除包
 *              npm install / i 包名 --save    //安装包，并添加到依赖中
 *              npm install              //下载当前项目所依赖的包
 *                
 * 
 * 
 * 
 * 
 * 
 * 
 * */


 var obj = {
        name : "张三",
        age : 18,
        run : function () {
            console.log("你好")
        }
 }
 var obj1 = obj;
     obj1.name = "李四";
     console.log(obj.name);   //李四
     obj = {
         sex : "男",
         max : 30
     }
     console.log(obj1);  /*{
        name : "李四",
        age : 18,
        run : function () {
            console.log("你好")
        }*/